﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ТипыДополнительныхРеквизитов
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"61e2d4b9-7c07-4ba3-9f0f-0c5fe2954c2f\", \"Представление\":\"ИдентификаторОтправителя\"}")]
		ИдентификаторОтправителя = 0,//Идентификатор отправителя
		[EnumMember(Value = "{\"Ссылка\":\"e925a087-6b3a-4c5e-a0a0-c1112b4aebdb\", \"Представление\":\"ИдентификаторПолучателя\"}")]
		ИдентификаторПолучателя = 1,//Идентификатор получателя
		[EnumMember(Value = "{\"Ссылка\":\"c9601f36-b310-4444-9953-f51acc647f44\", \"Представление\":\"ИмяПередающейСистемы\"}")]
		ИмяПередающейСистемы = 2,//Имя передающей системы
		[EnumMember(Value = "{\"Ссылка\":\"989c5739-9c7f-4dea-b568-2f5098a8075c\", \"Представление\":\"ТипПередаваемойИнформации\"}")]
		ТипПередаваемойИнформации = 3,//Тип передаваемой информации
		[EnumMember(Value = "{\"Ссылка\":\"419be58d-b550-4f40-9826-42cfdf75cda4\", \"Представление\":\"ИдентификаторПервичногоСообщения\"}")]
		ИдентификаторПервичногоСообщения = 4,//Идентификатор первичного сообщения
	}
	public static partial class ТипыДополнительныхРеквизитов_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ИдентификаторОтправителя = new Guid("5f0c0f9f-95e2-2f4c-4ba3-7c0761e2d4b9");//Идентификатор отправителя
		public static readonly Guid ИдентификаторПолучателя = new Guid("11c1a0a0-4a2b-dbeb-4c5e-6b3ae925a087");//Идентификатор получателя
		public static readonly Guid ИмяПередающейСистемы = new Guid("1af55399-64cc-447f-4444-b310c9601f36");//Имя передающей системы
		public static readonly Guid ТипПередаваемойИнформации = new Guid("502f68b5-a898-5c07-4dea-9c7f989c5739");//Тип передаваемой информации
		public static readonly Guid ИдентификаторПервичногоСообщения = new Guid("cf422698-75df-a4cd-4f40-b550419be58d");//Идентификатор первичного сообщения
		public static ТипыДополнительныхРеквизитов Получить(this ТипыДополнительныхРеквизитов Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ТипыДополнительныхРеквизитов Получить(this ТипыДополнительныхРеквизитов Значение, Guid Ссылка)
		{
			if(Ссылка == ИдентификаторОтправителя)
			{
				return ТипыДополнительныхРеквизитов.ИдентификаторОтправителя;
			}
			else if(Ссылка == ИдентификаторПолучателя)
			{
				return ТипыДополнительныхРеквизитов.ИдентификаторПолучателя;
			}
			else if(Ссылка == ИмяПередающейСистемы)
			{
				return ТипыДополнительныхРеквизитов.ИмяПередающейСистемы;
			}
			else if(Ссылка == ТипПередаваемойИнформации)
			{
				return ТипыДополнительныхРеквизитов.ТипПередаваемойИнформации;
			}
			else if(Ссылка == ИдентификаторПервичногоСообщения)
			{
				return ТипыДополнительныхРеквизитов.ИдентификаторПервичногоСообщения;
			}
			return ТипыДополнительныхРеквизитов.ПустаяСсылка;
		}
		public static byte[] Ключ(this ТипыДополнительныхРеквизитов Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ТипыДополнительныхРеквизитов Значение)
		{
			switch (Значение)
			{
				case ТипыДополнительныхРеквизитов.ИдентификаторОтправителя: return ИдентификаторОтправителя;
				case ТипыДополнительныхРеквизитов.ИдентификаторПолучателя: return ИдентификаторПолучателя;
				case ТипыДополнительныхРеквизитов.ИмяПередающейСистемы: return ИмяПередающейСистемы;
				case ТипыДополнительныхРеквизитов.ТипПередаваемойИнформации: return ТипПередаваемойИнформации;
				case ТипыДополнительныхРеквизитов.ИдентификаторПервичногоСообщения: return ИдентификаторПервичногоСообщения;
			}
			return Guid.Empty;
		}
	}
}